package com.zmn.plat.business.interfaces.price.meter3;

import com.zmn.plat.common.dto.price.meter3.*;

import java.util.List;

/**
 * 描述: 计价器3.0服务项价格接口类
 *
 * @author guoqiao
 * @since 2021/11/24 10:40
 */
public interface MeterFlow3ItemBService {

    /**
     * 描述: 查询上门费（未计算系数）
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/9/7 11:28
     */
    ItemDRO3 getDoorFeeByQuery(MeterBaseQuery3 query);

    /**
     * 描述: 查询产品的最低服务项价格（计算系数）
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/11/24 10:40
     */
    ItemDRO3 getMinItemPriceByQuery(ItemPriceQuery3 query);

    /**
     * 描述: 查询产品的服务项（未计算系数）
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/11/24 10:40
     */
    List<ItemDRO3> listItemByQuery(ItemPriceQuery3 query);

    /**
     * 描述: 查询产品的服务项（计算系数）
     * 需要根据故障id集合筛选
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/9/7 11:28
     */
    List<ItemDRO3> listItemByFaultIdList(MeterItemQuery3 query);

    /**
     * 描述: 查询产品报价信息（计算系数）
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/11/24 10:40
     */
    List<ItemDRO3> listItemQuoteByQuery(MeterQuoteQuery3 query);
    /**
     * 描述: 查询产品的服务项价格（计算系数）
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/11/24 10:40
     */
    List<ItemDRO3> listItemPriceByQuery(ItemPriceQuery3 query);

    /**
     * 描述: 查询产品的服务项价格（计算系数）
     * 前台产品的属性值需要进行变换，具体的变化规则为：
     * 1.项目名称：后台产品二级分类名称+产品属性
     * 2.项目分组：项目名称
     * 3.产品名称：前台产品名称
     *
     * @param query
     * @return list<com.zmn.plat.common.dto.price.meter3.ItemDRO3>
     * @author guoqiao
     * @since 2021/9/7 11:28
     */
    List<ItemDRO3> listItemPriceTransByQuery(ItemPriceQuery3 query);

}
